package coin.controlelr;

/**
 * @author coinyang
 * @date 2023/5/24 20:48
 */

/**
 * oop
 * 封装  类--->属性和方法   ---> 属性 int n =3  方法--行为()   对象 重载
 * 继承  类基础上在进行封装-->父类 (执行顺序 关键字 技能点-- 重写 向上造型 )
 * 多态  --->接口 只是一种规范 跑
 */
class Person{
    int age;
    String name;
    String addr;
    Person(){
        System.out.println("person wucan");
    }
    Person(String name){
        this.name = name;
        System.out.println("person 有参");
    }
    public int  play(){
        System.out.println("迪斯扣");
        return 1;
    }
}
 class Student extends Person{
        int SID;
//     public int  play(){
//         System.out.println("迪斯扣");
//         return 1;
//     }
     void play(String n){
         System.out.println("王者");
     }
   public int study(){
        System.out.println(name+"好好学习");
        return 1;
    }
    public Student(String name){//  规范
//        super(name);
        this.name =name;
    }

    Student(int age,Student s){}
     Student(){

        System.out.println("stu 无参构造");
    }
}
class Teacher extends Person{
        int tId;
    void teach(){
        System.out.println("正儿八经教书");
    }
}


public class oderC {
    public static void main(String[] args) {
        Student s1 = new Student("zhangs");// 调用方法
        Person s3 = new Student("zhangs");// 调用方法
        Person s4 = new Teacher();
        Person s2 = new Student("lisi");// 向上造型
        // s1多         s2父类 点变量  看类型=左边
        // s1           s2    点方法  看对象=右边
        System.out.println(s1.name);
        if(s3 instanceof Student){
            Student s = (Student) s3;
        }
        System.out.println(s3.name);
    }
}
